草庐IT

bool 值的 C++ 短路

全部标签

c# - 为什么 lambda 中的短路不起作用?

为什么linq仍然要检查第二个表达式?.Where(t=>String.IsNullOrEmpty(someNullString)||t.SomeProperty>=Convert.ToDecimal(someNullstring))通常的解决方法是什么?更新:当然,它是关于LINQtoSQL的。它无法转换为SQL。 最佳答案 是.Where在Table上使用?如果是这样,那么在获取任何数据之前,它必须将LINQ转换为SQL,为此它必须转换string进入decimal.它还没有尝试实际执行比较,它正在尝试构建检索数据所需的结构。

c# - 具有默认值的 XmlSerializer 和 List<T>

我在序列化和反序列化具有List类型成员的类时观察到一个奇怪的行为在构建时填充了默认值。与基于数组的属性不同,类型为List的属性不会在XmlSerializer反序列化时被清空。这是我的代码:publicclassProgram{publicclassConfig{publicConfig(){Test1=newList(){"A","B"};Test2=newString[]{"A","B"};}publicListTest1{get;set;}publicstring[]Test2{get;set;}}publicstaticvoidMain(){XmlSerializerxml

c# - 为什么 C# 对同一类型的不同值的重载方法调用不同?

我对c#方法重载和调用解析有一个疑问。假设我有以下C#代码:enumMyEnum{Value1,Value2}publicvoidtest(){method(0);//thiscallsmethod(MyEnum)method(1);//thiscallsmethod(object)}publicvoidmethod(objecto){}publicvoidmethod(MyEnume){}请注意,我知道如何使其工作,但我想知道为什么对于int(0)的一个值它调用一种方法而对于另一个(1)它调用另一个方法。这听起来很尴尬,因为这两个值具有相同的类型(int),但它们针对不同的方法“链接

c# - Moq - 验证具有参数值的方法调用

我正在尝试使用Moq测试调用具有“params”列表的方法,但由于某种原因,这失败了。方法签名是这样的:voidAttachAsModifiedToOrders(IOrderorder,paramsExpression>[]modifiedProperties);然后在Mock设置中我做了类似这样的事情来从模拟集合中做一个简单的“删除/插入”:MockEntities.Setup(n=>n.AttachAsModifiedToOrders(It.IsAny())).Callback>[]>((order,expr)=>{Orders.Remove(Orders.Where(o=>o.I

c# - 锁定对 bool 的访问是必需的还是 Overkill

我有一个主要设计为POCO类的类,有各种线程和任务可以读取它的值,只有其他人只是偶尔更新这些值。这似乎是ReaderWriterLockSlim的理想方案。问题是,在类中,如果需要线程安全的属性,如果属性是bool,是不是有点大材小用了?如果它是一个int会怎样?日期时间?publicclassMyClass{privatebool_theValue=false;privateReaderWriterLockSlim_theValueLock=newReaderWriterLockSlim();publicboolTheValue{get{boolreturnVal=false;try

具有唯一键和值的 C# 字典类型

我想知道C#中是否有类似于“字典”的内置类型,但TKey和TValue都必须是唯一的。例如:d.Add(1,"1");d.Add(2,"1");//ThiswouldnotbeOKbecause"1"hasalreadybeenusedasavalue.我知道这有点奇怪,但似乎BCL中有大约10亿个集合类型,它可能存在。有什么想法吗? 最佳答案 使用Dictionary和HashSet/secondaryreverseDictionary怎么样-它将解决问题,并且比检查单个Dictionary的性能更好。像这样的东西,包装成类:Ha

c# - 将 null 添加到 List<bool?> 作为 IList 抛出异常

使用.NET3.5和C#3.0,IListlist=newList();list.Add(null);这会抛出一个ArgumentException,感觉不对。Listlist=newList();list.Add(null);完美运行。那么这是Microsoft代码中的错误吗?如何在现实生活中产生这种错误的例子:newJavaScriptSerializer().Deserialize>("[true,false,null]"); 最佳答案 是的,是的。参见http://social.msdn.microsoft.com/Foru

c# - 具有多个值的 System.Data.SQLite 参数化查询?

我正在尝试使用参数化查询运行批量删除。目前,我有以下代码:pendingDeletions=newSQLiteCommand(@"DELETEFROM[centres]WHERE[name]=$name",conn);foreach(stringnameinselected)pendingDeletions.Parameters.AddWithValue("$name",name);pendingDeletions.ExecuteNonQuery();但是,参数的值似乎每次都被覆盖,我最终只删除了最后一个中心。使用值列表执行参数化查询的正确方法是什么? 最佳

c# - AutoResetEvent 与 bool 值停止线程

我在工作线程中有一个对象,我可以指示它停止运行。我可以使用bool或AutoResetEvent来实现:bool值:privatevolatilebool_isRunning;publicvoidRun(){while(_isRunning){doWork();Thread.Sleep(1000);}}自动重置事件:privateAutoResetEvent_stop;publicvoidRun(){do{doWork();}while(!_stop.WaitOne(1000));}然后Stop()方法会将_isRunning设置为false,或调用_stop.Set()。除了Auto

C# : Implicit conversion between '<null>' and 'bool'

当我尝试转换object时收到奇怪的错误消息至bool,这是我的代码:publicpartialclassModifierAuteur:DevExpress.XtraEditors.XtraForm{publicModifierAuteur(objectgetKeyDecesCheckBox){decesCheckBox.Checked=getKeyDecesCheckBox==null?null:(bool)getKeyDecesCheckBox;}}这是错误信息:Typeofconditionalexpressioncannotbedeterminedbecausethereisn